package servicios

import daos.SessionManager
import daos.Operation
import aerolinea.Vuelo
import java.util.List
import aerolinea.Aerolinea
import daos.AerolineaDAO

class AerolineaManager {
	
	def consultarAerolinea(String id) {
		SessionManager.runInSession(new ConsultarAerolinea(id))
	}
	
	def crearAerolinea(String nombre, List<Vuelo> vuelos) {
		SessionManager.runInSession(new CrearAerolinea(nombre, vuelos))
	}

	def modificarAerolinea(String nombre, List<Vuelo> vuelos) {
		SessionManager.runInSession(new ModificarAerolinea(nombre, vuelos))
	}
}

class ConsultarAerolinea implements Operation<Aerolinea>{
	var String nombre
	
	new(String nom) {
		nombre= nom
	}

	override Aerolinea execute() {
		var a = new AerolineaDAO().get(nombre)
		a
	}
}

class CrearAerolinea implements Operation<Aerolinea> {
	var String nombre
	var List<Vuelo> vuelos

	new(String nom, List<Vuelo> vue) {
		nombre= nom
		vuelos= vue
	}

	override Aerolinea execute() {
		var a = new Aerolinea(nombre, vuelos)
		new AerolineaDAO().save(a)
	    a
	}
}

class ModificarAerolinea implements Operation<Aerolinea> {

	var String nombre
	var List<Vuelo> vuelos

	new(String nom, List<Vuelo> vue) {
		nombre= nom
		vuelos= vue
	}


	override Aerolinea execute() {
		var a = new AerolineaDAO().get(nombre)
		a.setVuelosOfertados(vuelos)
		a
	}

}